import re
#导入蓝图
from flask import Blueprint,request,json,jsonify

#导入封装好的data
from utils.comm import get_data


#实例化
bp_adminuser=Blueprint('adminuser',__name__)

from db import db1


# 角色管理接口
@bp_adminuser.route('/roleM',methods=['POST','GET'])
def roleM():
    # 获取前端传递的信息
    if request.method=='POST':
            #获取data
        data=request.data
        if data:
            data=json.loads(data)
        else:
            data=request.form
        #判断角色是否重复
        
        sql="select id from role where name='%s'"%(data['name'])
        res=db1.find(sql)
        if res:
            #存在返回错误信息
            return jsonify({'code':20010})
        else:
            sql1="insert into role values(0,'%s')"%(data['name'])
            #不存在添加
            db1.update(sql1)

        #返回
        return jsonify({'code':200})

    #展示所有角色
    elif request.method=='GET':
        sql="select id,name from role"
        res=db1.findall(sql)
        return jsonify({'code':200,'list':res})

#资源管理接口
@bp_adminuser.route('/resourcesM',methods=['POST','GET'])
def resourcesM():
    # 获取前端传递的信息
    if request.method=='POST':
            #获取data
        data=request.data
        if data:
            data=json.loads(data)
        else:
            data=request.form
        #判断资源是否存在
        sql="select id from resources where name='%s'"%(data['name'])
        res=db1.find(sql)
        if res:
            #存在返回错误信息
            return jsonify({'code':20010})

        else:
            sql1="insert into  resources values(0,'%s','%s')"%(data['name'],data['url'])
            res=db1.update(sql1)
    
        #返回
        return jsonify({'code':200})

    #展示资源信息
    elif request.method=='GET':
        #获取roleid,如果存在查询此角色对应的资源id
        roleid=request.args.get('id')
        if roleid:
            sql="select resource_id from roles_resource where role_id=%d"%(int(roleid))
            res=db1.findall(sql)
            list=[]
            for i in res:
                list.append(i['resource_id'])
        else:
            
            sql="select * from resources"
            list=db1.findall(sql)
        return jsonify({'code':200,'list':list})




#用户管理接口
@bp_adminuser.route('/aduserM',methods=['POST'])
def aduserM():
    # 获取前端传递的信息
    if request.method=='POST':
            #获取data
        data=request.data
        if data:
            data=json.loads(data)
        else:
            data=request.form
    #判断资源是否存在
    sql="select id from adminuser where name='%s'"%(data['mobile'])
    res=db1.find(sql)
    #如果资源存在
    if res:
        #存在返回错误信息
        return jsonify({'code':20010})
    else:
        sql1="insert into  adminuser(name,role_id) values('%s',%d)"%(data['mobile'],int(data['role_id']))
        db1.update(sql1)
    #返回
    return jsonify({'code':200})
    
#给角色配置资源
@bp_adminuser.route('/setresourcesM',methods=['POST','GET'])
def setresourcesM():
    if request.method=='POST':
        data=request.data
        if data:
            data=json.loads(data)
        else:
            data=request.form
        #删除此roleid对应的所有资源
        sql="delete from roles_resource where role_id=%d"%(int(data['roleid']))
        db1.update(sql)
        #把选中的资源加入数据库
        ids=data['ids']
        for i in ids:
            sql1="insert into roles_resource values(%d,%d)"%(int(data['roleid']),i)
            db1.update(sql1)
        return jsonify({'code':200})
